De-interlacing is the process of converting interlaced video frames, such as common analog television signals, into a non-interlaced video frames for display. Interlaced video frames consist of two sub-fields taken in sequence, where the fields are sequentially scanned at odd and even lines of the image sensor. The advantage of interlaced frames is that it requires less transmission bandwidth than transmitting the entire image frame, which is a critical factor when transmitting video data.
Many current display systems, e.g., liquid crystal displays (“LCDs”), plasma screens, and other high definition (“HD”) displays, generate displays using a progressive scan format. In the progressive scan format, the lines of each frame are sequentially displayed. Thus, sub-fields of interlaced video data need to be combined into single frames by a de-interlacing process so that the video data can be displayed in the progressive scan format. Several de-interlacing techniques exist for converting interlaced video into progressive scan video. However, each of the techniques has significant drawbacks.
For instance, FIG. 1 illustrates a block diagram of a prior art method for processing a video signal by noise reduction and de-interlacing. A video signal for various video formats can have interlaced frames. In order to view the video signal, the interlaced frames are de-interlaced during decoding for output to a display. To improve the quality of the outputted de-interlaced video signal, noise reduction can be applied to the interlaced frames of the video signal to reduce noise and any other artifacts.
An interlaced frame of the video signal F(n) and a noise reduced frame of the video signal F′(n−2) can be inputted to a motion estimation (“ME”) block 10, a motion estimation block 12 and a three dimensional (“3D”) motion compensation noise reduction (“MCNR”) block 14. The video signal F(n) can have even frames or odd frames for every consecutive number of n. An example is when n=0, 2, 4, 6, 8, 10, etc., the video frames F(n) are all even frames, meaning each even frame contains pixel information for even numbered lines of the video. When n=1, 3, 5, 7, 9, etc., the video frames F(n) are all odd frames, meaning each odd frame contains pixel information for odd numbered lines.
The motion estimation block 10 receives the frame data F(n) and F′(n−2), consecutive odd numbered frames or even numbered frames, and generates motion vectors MV(n−1) for the frame n−1. Next, the motion vectors MV(n−1), interlaced frame F(n), and interlaced frame F′(n−2) are inputted to the noise reduction block 14. The noise reduction block 14 generates a noise reduced frame F′(n), which is stored in memory 24 for later retrieval. The memory 24 can be a buffer, cache or other memory location for the noise reduced frames F′(n) to be stored. In fact, the previous noise reduced frame F′(n−2) is retrieved from memory to be inputted to the ME block 10, the ME block 12, and the noise reduction block 14.
The previous noise reduced frame F′(n−2) and the current noise reduced frame F′(n) are inputted to the ME block 12 to generate motion vectors MV(n−1). The generated motion vectors MV(n−1) can be further post processed using a MV post processing block 16, and then stored in a memory 26 for motion vectors MV( ). The memory 26 can be a buffer, cache, or other memory for storing motion vectors.
A de-interlacer 18 can retrieve motion vectors from the memories 24 and 26 and from an edge interpolator 22 to blend the various inputs for the de-interlacer output F′(n−k, x, y), where k is greater than one and is the frame number delay relative to n, and x and y are coordinate positions of pixels to be displayed. The variable k can be typically 1, 2, or 3 based on the system requirements, where the smaller the k, the smaller the latency will be.
The problem with such system is that the ME blocks 10 and 12 require an enormous amount of resources for the ME calculations to be performed. In this example, there needs to be two dedicated ME blocks for generating an acceptable de-interlaced frame, where each ME block requires a large number of line buffers. In fact, the motion estimation is the most computationally demanding process in image processing applications. Accordingly, the motion estimation engine is very crucial to the performance of video compression and video processing. Therefore, there exists a desire to provide new methods and systems for video processing of interlaced video data that can reduce the complexity and resources used to generate a de-interlaced frame of the video data.